package com.mingqijia.gassafety.webserver.response.workorder.asst;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import java.util.Date;

/**
 * 工单vo
 *
 * @author guoliang.lao
 * @date: 2022-09-19
 */
@Data
public class AsstOrderListResponse {

    private Long id;

    /**
     * 工单编号
     */
    private String orderNo;
    /**
     * 外部单号
     */
    private String outOrderCode;
    /**
     * 工单关联编号
     */
    private String relationNo;
    /**
     * VCC用户ID
     */
    private String memberId;

    /**
     * 业务类型代码
     */
    private String bizCode;

    /**
     * 业务类型名称
     */
    private String bizName;

    /**
     * 业务线
     */
    private String lineBizCode;

    /**
     *  业务线名称
     */
    private String lineBizName;

    /**
     * 工单状态
     */
    private Integer orderStatus;
    /**
     * 工单状态描述
     */
    private String orderStatusRemark;
    /**
     * 预约日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date bookDate;

    /**
     * 预约时间
     */
    private String bookTime;

    /**
     * 签到时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private String visitTime;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private String completedTime;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
    private String planVisitDate;

    /**
     * 网格ID
     */
    private Long gridId;

    /**
     * 网格名称
     */
    private String gridName;

    /**
     * 户号
     */
    private String subsCode;

    /**
     * 联系人
     */
    private String custName;

    /**
     * 联系电话
     */
    private String phone;

    /**
     * 服务地址
     */
    private String address;

    /**
     * 处理结果
     */
    private Integer completeResult;
    /**
     * 处理结果 中文
     */
    private String completeResultStr;
    /**
     * 工单来源
     */
    private Integer fromSystem;

    /**
     * 工单来源 中文
     */
    private String fromSystemStr = "";

    /**
     * 服务者ID
     */
    private Long servicerId;
    /**
     * 指派员工
     */
    private String servicerName;
    /**
     * 服务者工号
     */
    private String servicerJobNumber;

    /**
     * 跟催次数
     */
    private Integer urgeCount;

    /**
     * 预警次数
     */
    private Integer warnCount;
    /**
     * 服务编码
     */
    private String serviceCode;
    /**
     * 服务内容
     */
    private String serviceName;
    /**
     * 派单方式 0:系统派单 1:管理员派单 2:员工派单
     */
    private Integer dispatchMode;
    /**
     * 派单方式名称 0:系统派单 1:管理员派单 2:员工派单
     */
    private String dispatchModeName;
    /**
     * 派单服务者id
     */
    private Long dispatchServicerId;
    /**
     * 派单服务者姓名
     */
    private String dispatchServicerName;
    /**
     * 派单服务者工号
     */
    private String dispatchServicerJobNumber;
    /**
     * 派单时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private String dispatchTime;
    /**
     * 班次id
     */
    private Long scheduleId;
    /**
     * 班次名称
     */
    private String scheduleName;

    /**
     * 用户备注
     */
    private String userRemark;

    /**
     * 地址所属经纬度
     */
    private String location;

    /**
     * 不成功备注
     */
    private String failRemark;
    
    /**
     * 不成功原因
     */
    private String failReason;

    /**
     * 取消工单备注
     */
    private String cancelRemark;

    /**
     * 取消工单原因
     */
    private String cancelReason;
    /**
     * 工单备注(内部可见)
     */
    private String remark;
    /**
     * 派单状态记录
     */
    private Integer dispatchFail;
    /**
     * 工单优先级 0: 普通 1: 紧急
     */
    private Integer priority;
    /**
     * 是否抢单 0:否 1:是
     */
    private Integer checkSeizeOrder = 0;
    /**
     * 是否超时 0:否 1:是
     */
    private Integer checkTimeOut = 0;

    /**
     * 关联工单模板id
     */
    private Long orderTemplateId;

    /**
     * 模板类型 1-默认模板, 2-安装模板, 3-维修模板
     */
    private Integer templateType;

    private String realAddress;

    private String otherRemark;

    private String createUserName;

    //工单补录状态：0正常 1补录
    private Integer additionalStatus;

    /**
     * 创建时间
     */
    private Date createTime;

    /**
     * 更新时间
     */
    private Date updateTime;

    /**
     * 外部租户id
     */
    private String spId;
}
